// pages/course/courseOnline/courseOnline.js
Page({
  /**
   * 页面的初始数据
   */
  data: {
    showPriceSort: false,
    showPriceRange: false,
    priceSortOrder: '',
    priceRanges: [
      { label: '免费', value: 'free', selected: false },
      { label: '¥50以下', value: 'under50', selected: false },
      { label: '¥50-100', value: '50to100', selected: false },
      { label: '¥100-500', value: '100to500', selected: false },
      { label: '¥500-1000', value: '500to1000', selected: false },
      { label: '¥1000以上', value: 'above1000', selected: false }
    ],
    PageNum: 1,
    PageSize: 3,
    article: [],
    hasMoreData: true,
    loading: false
  },

  /**
   * 切换价格排序显示
   */
  togglePriceSort() {
    this.setData({
      showPriceSort: !this.data.showPriceSort,
      showPriceRange: false
    });
  },

  /**
   * 设置价格排序并执行排序
   */
  setPriceSort(e) {
    const order = e.currentTarget.dataset.order;
    this.setData({
      priceSortOrder: order,
      showPriceSort: false
    });
    this.sortArticlesByPrice(order);
  },

  /**
   * 根据价格对文章进行排序
   */
  sortArticlesByPrice(order) {
    let sortedArticles = [...this.data.article];
    sortedArticles.sort((a, b) => {
      if (order === 'asc') {
        return a.coursePrice - b.coursePrice;
      } else {
        return b.coursePrice - a.coursePrice;
      }
    });

    this.setData({
      article: sortedArticles
    });
  },

  /**
   * 切换价格范围显示
   */
  togglePriceRange() {
    this.setData({
      showPriceRange: !this.data.showPriceRange,
      showPriceSort: false
    });
  },

  /**
   * 选择价格范围
   */
  selectPriceRange(e) {
    const index = e.currentTarget.dataset.index;
    const priceRanges = this.data.priceRanges;
    priceRanges[index].selected = !priceRanges[index].selected;
    this.setData({ priceRanges });
  },

  /**
   * 确认价格范围选择
   */
  confirmPriceRange() {
    const selectedRanges = this.data.priceRanges.filter(range => range.selected);
    console.log('Selected price ranges:', selectedRanges);
    this.setData({ showPriceRange: false });
    // TODO: 实现根据选中的价格范围筛选课程的逻辑
  },

  /**
   * 跳转到智慧生活页面
   */
  navigateToCourseDetail(e) {
    wx.navigateTo({
      url: "/pages/course/IntelligentLife/IntelligentLife",
      success: function (res) {
        console.log("跳转成功");
      },
      fail: function (res) {
        console.log('跳转失败');
      }
    })
  },

  /**
   * 加载更多数据
   */
  more() {
    if (this.data.loading || !this.data.hasMoreData) return;
    this.setData({
      loading: true
    });
    wx.request({
      url: `http://localhost:8080/courseOnline/findAllCourseOnline?PageNum=${this.data.PageNum}&PageSize=${this.data.PageSize}`,
      success: (res) => {
        const newCourses = res.data.data;
        console.log(res);
        if (newCourses && newCourses.length > 0) {
          if (newCourses.length < this.data.PageSize) {
            this.setData({
              hasMoreData: false
            });
          }
          let updatedArticles;
          if (this.data.PageNum === 1) {
            updatedArticles = newCourses;
          } else {
            updatedArticles = this.data.article.concat(newCourses);
          }
          
          // 如果有排序顺序，应用排序
          if (this.data.priceSortOrder) {
            this.sortArticlesByPrice(this.data.priceSortOrder);
          } else {
            this.setData({
              article: updatedArticles
            });
          }
          
          this.setData({
            PageNum: this.data.PageNum + 1
          });
        } else {
          this.setData({
            hasMoreData: false
          });
        }
      },
      fail: (err) => {
        console.error(err);
      },
      complete: () => {
        this.setData({
          loading: false
        });
      }
    });
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    this.more()
  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {
    this.more();
  },


  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {
    this.more();
  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  },

  a(event) {
    const course = event.currentTarget.dataset.course;
    wx.navigateTo({
      url: `/pages/course/courseDetail/courseDetail?id=${course.id}`,
    })
    console.log(course);
  }
})